When using a communication device such as a cellular phone to communicate with a far end source, echo occasionally develops in a connection. For example, when audio from a far-end environment is output through a speaker of a near-end communication device, the far-end audio signal which is output locally may be picked up by microphones or other audio sensors of the near-end communication device. As such, the sounds from the far-end audio signal may be sent back to the far-end environment, resulting in an echo to a far-end listener.
Conventionally, acoustic echo cancellation (AEC) systems may take the far-end audio signal and use it to predict the echo of the far-end audio signal (after being played through the speaker and picked up by the microphone). Typically, a transfer function that describes a path from the far-end audio signal, through the speaker, through an acoustic environment, and back to the microphone is linearly modeled to predict the echo. These AEC systems are performed in a waveform domain whereby the echo is predicted, inverted, delayed, and subtracted out from a near-end audio signal.
Many problems exist with conventional AEC systems. First, the transfer function (i.e., relationship between the far-end audio signal and the echo) is typically constantly changing, since the acoustic environment is rarely fixed. In the case of a handheld communication device (e.g., a cellular phone), there may also be reflections of an audio signal off a face of a user. The prior art AEC systems are adaptive and continually update the transfer function. However, errors usually occur in the echo prediction due to the changing environment. If the echo prediction is even slightly incorrect, or an applied delay is incorrect, residual echo will remain.
A second disadvantage is that these prior art AEC systems typically use a linear model (i.e., linear filter) to predict the echo. However, the transfer function is often not linear (e.g., there may be non-linearities in the speaker which may cause distortion). As a result, poor echo prediction may occur.
Other AEC systems may attempt to overcome this disadvantage by introducing non-linearity to the echo prediction model. However, this results in more complexity. For example, non-linearity may become problematic in cellular phones or speakerphones with cheap components. The prediction may be difficult to obtain unless an exact model of the speaker (e.g., of the cellular phone or speakerphone) is known.